home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / PC / MISCBAS / RADIX.ASC < prev    next >
Text File  |  1987-01-11  |  2KB  |  49 lines

  1.  
  2. 1 'BASE-CONVERSIONS
  3. 2 'COPYRIGHT 1977 (C) BY W.A.BURTON - ALL RIGHTS RESERVED
  4. 3 PRINT CHR$(26) : PRINT "BASE CONVERSIONS" : PRINT
  5. 4 PRINT "ONLY INTEGER BASES IN RANGE OF 2-36 ARE VALID"
  6. 5 DIM R$(36), R1$(72), Y(72), L(72)
  7. 6 R$="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  8. 7 PRINT "TO CHANGE BASES USED ENTER '---' WHEN PROMPTED WITH '?'"
  9. 8 INPUT "IN WHAT BASE WILL NUMBER(S) BE ENTERED ";R2
  10. 9 IF R2<>INT(R2) THEN 39
  11. 10 IF R2<2 THEN 41
  12. 11 IF R2>36 THEN 37
  13. 12 INPUT "TO WHAT BASE WILL NUMBER(S) BE CONVERTED ";R3
  14. 13 IF R3<>INT(R3) THEN 40
  15. 14 IF R3<2 THEN 42
  16. 15 IF R3>36 THEN 38
  17. 16 PRINT "INPUT YOUR NUMBER(S) WHEN PROMPTED WITH A '?'"
  18. 17 INPUT R1$
  19. 18 IF R1$="---" THEN 8
  20. 19 FOR L=1 TO LEN(R1$):FOR J=1 TO R2:IF MID$(R1$,L,1)=MID$(R$,J,1) THEN 22
  21. 20 NEXT J
  22. 21 PRINT "ENTRY ";R1$;" NOT LEGAL IN BASE ";R2 : GOTO 17
  23. 22 L(L)=J-1
  24. 23 NEXT L : Q1=LEN(R1$) : Q=0 : Q2=1
  25. 24 Y=0 : N=0
  26. 25 FOR L=Q2 TO Q1 : N=N*R2+L(L) : C=INT(N/R3) : N=N-R3*C
  27. 26 IF Y=0 THEN 29
  28. 27 Y=Y+1 
  29. 28 L(Y)=C : GOTO 31
  30. 29 IF C=0 THEN 31
  31. 30 Y=1 : GOTO 28
  32. 31 NEXT L
  33. 32 Q=Q+1 : Y(Q)=N : Q1=Y : IF Y>0 THEN 24
  34. 33 PRINT TAB(20) R1$; " ";
  35. 34 FOR X1=POS(X+2) TO 38 : PRINT "-"; : NEXT
  36. 35 FOR L=Q TO 1 STEP -1 : G=Y(L)+1 : PRINT MID$(R$,G,1); : NEXT L
  37. 36 PRINT : GOTO 17
  38. 37 GOSUB 44 : GOTO 8
  39. 38 GOSUB 44 : GOTO 12
  40. 39 GOSUB 43 : GOTO 8
  41. 40 GOSUB 43 : GOTO 12
  42. 41 GOSUB 45 : GOTO 8
  43. 42 GOSUB 45 : GOTO 12
  44. 43 PRINT TAB(10) "INVALID ENTRY - MUST BE INTEGER !" : RETURN
  45. 44 PRINT TAB(10) "INVALID BASE - MUST BE <=36 !" : RETURN
  46. 45 PRINT TAB(10) "INVALID BASE - MUST BE >=2 !" : RETURN
  47. : RETURN
  48. 44 PRINT TAB(10) "INVALID BASE - MUST BE <=36 !" : RETURN
  49. 45 PRINT TAB(10) "INVALID